Businesses and individuals are increasingly dependent on computers and computer-based electronic communication. More and more businesses are moving toward “paperless” modes of operation, and the convenience of the Internet has resulted in individuals using electronic media for various activities, such as communicating via email, banking, paying bills, investing money and shopping, to name but a few. While businesses and individuals desire the convenience of electronic communication, these entities also want to maintain at least the same level of security that more traditional methods of communication offer. However, more traditional methods of communication are inherently more secure than electronic communication because of the relative ease with which computers may be used to intercept the information being communicated between two or more computers. Accordingly, cryptography techniques have been created to secure information being communicated electronically.
Cryptography is the study of sending messages in a secret form so that only those authorized to receive the message be are able to read it. Cryptography may be used for any form of communication, but for the purposes of this application, electronic cryptography will be discussed. For electronic communication, a message is transformed into a secret form using a cryptographic key and then may be transformed back into its original or clear form with a cryptographic key. Examples of cryptographic techniques include symmetric encryption, asymmetric encryption and hashing.
Symmetric encryption involves using a single shared key among all users communicating with one another. A message is locked (encrypted) with a key and then the same key is used to unlock (decrypt) the message. In order to protect a message when using symmetric encryption, it is vital to have a secure method to exchange the secret key to all users.
Asymmetric encryption involves using a key pair to secure information. A key pair is comprised of a private key (decryption key), which is known only to a single user or a limited group of users, and a public key (encryption key), which may be known by anyone. In order to encrypt and decrypt a message, both the private key and public key of the key pair must be used. For example, a message will be encrypted by a sender using the public key of the intended recipient of the message. Once the recipient receives the encrypted message, his or her private key is used to decrypt the message.
Hashing involves transforming an input message of any size into an output or hash value of another, generally smaller, size using a mathematical algorithm. The hash value is known as the message digest. The message digest is a “digital fingerprint” of the input message and serves to maintain integrity of the hashed message by allowing a recipient to verify that the message has not been tampered with since being hashed. Ultimately, in order to maintain security of the encrypted and/or hashed message or information, the key or hash function must be protected.
A system using more than one cryptographic technique provides a greater level of security for the information being stored and communicated by the system. However, a system with multiple users and applications such as a network computer system, using multiple cryptographic techniques to protect multiple messages and pieces of information, results in a large volume of keys being generated and utilized. However, a user such as a person, computer, or software application may want to send information and/or other data to a select group in a system with multiple members without having to send it to each member individually. For example, a user may want to send a message to one recipient which distributes the message to all the members of a group as opposed to sending a message to each recipient, especially if there are potentially hundreds or thousands of recipients. It may be desirable for any one of the recipients to be able to open the email, for example, and receive the information independently of the other recipients. It may be desirable to know exactly which recipient opened the message for purposes of maintaining the security and integrity of the system. However, in order to achieve this recipient identification with currently available systems, the information, data and/or message would need to be encrypted with a public key for each group member. Each group member would use its private key to decrypt the information and/or data. Although it is more secure to use individual public and private key pairs, it becomes increasingly more time consuming when there are, for example, hundreds or thousands of members in a group. It is less efficient and slower to generate more key pairs. Therefore, there is a need to increase efficiency yet maintain the security associated therewith. There is also a desire to have the capability to know which member of the group has received, opened or decrypted the information using its private key.